package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.RampInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护匝道控制器点位信息的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
@SuppressWarnings("rawtypes")
public interface DubboRampInfoService {
	
	/**
	 * 返回所有匝道控制器点位信息
	 * @return ResultPojo 所有匝道控制器点位信息
	 */
	public ResultPojo getRampInfo();
	
	/**
	 * 分页返回所有匝道控制器点位信息
	 * @param page 分页对象
	 * @return ResultPojo 包含匝道控制器点位信息的分页对象
	 */
	public ResultPojo getPageRampInfo(Page page);
	/**
	 * 返回所有匝道控制器点位信息
	 * @param orderSeq 
	 * @param deviceStatusCode 
	 * @param rampName 
	 * @param rampId 
	 * @return ResultPojo 所有匝道控制器点位信息
	 */
	public ResultPojo getRampInfo(String rampId, String rampName, String deviceStatusCode,String manageDept, String orderSeq);
	
	/**
	 * 分页返回所有匝道控制器点位信息
	 * @param page 分页对象
	 * @param orderSeq 
	 * @param deviceStatusCode 
	 * @param rampName 
	 * @param rampId 
	 * @return ResultPojo 包含匝道控制器点位信息的分页对象
	 */
	public ResultPojo getPageRampInfo(Page page, String rampId, String rampName, String deviceStatusCode, String manageDept,String orderSeq);
	
	/**
	 * 返回指定点位编码的匝道控制器点位信息
	 * @param rampId 点位编码
	 * @return ResultPojo 匝道控制器点位信息
	 */
	public ResultPojo getRampInfoById(String rampId);
	
	/**
	 * 按名称匹配并返回匝道控制器点位信息
	 * @param rampName 点位名称
	 * @return ResultPojo 匝道控制器点位信息
	 */
	public ResultPojo getRampInfoByName(String rampName);
	
	/**
	 * 按名称匹配并返回匝道控制器点位信息
	 * @param manageDept 点位名称
	 * @return ResultPojo 匝道控制器点位信息
	 */
	public ResultPojo getRampInfoByManageDept(String manageDept);
	
	/**
	 * 返回与前缀相匹配的匝道控制器点位最大编码值，用于手工生成新的点位编码
	 * @param prefixRampId 匝道控制器点位编码前缀
	 * @return String 与前缀相匹配的匝道控制器点位最大编码值
	 */
	public String getMaxRampId(String prefixRampId);
	
	/**
	 * 添加一条匝道控制器点位信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param rampInfoDto 匝道控制器点位信息
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addRampInfo(String token, RampInfoDto rampInfoDto);
	
	/**
	 * 修改一条匝道控制器点位信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param rampInfoDto 匝道控制器点位信息
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editRampInfo(String token, RampInfoDto rampInfoDto);
	
	/**
	 * 删除指定编码的匝道控制器点位信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param rampId 点位编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeRampInfo(String token, String rampId);
	
	/**
	 * 按设备状态查询并返回匝道控制器点位信息
	 * @param deviceStatusCode 设备状态
	 * @return ResultPojo 删除结果
	 */
	 public ResultPojo getRampInfoByDeviceStatus(String deviceStatusCode);

	public ResultPojo getPageEasyUiRampInfo( Page page, String rampId, String rampName, String deviceStatusCode,String manageDept,
			String orderSeq);
}
